In computing, a firewall is a network security system that monitors and controls the incoming and outgoing network traffic based on predetermined security rules. A firewall often establishes a barrier between a trusted, secure network and external networks that are assumed not to be secure or trusted. Firewalls may be programmed with many rules specifying which packets to allow or drop.
A tenant in a software defined data center with virtualized network may also want firewall services, which could be implemented in a distributed manner. Doing so requires the implementation of many firewall rules throughout the network in an efficient manner. As such, various optimizations are required to provide such firewall rules efficiently.